package com.young.lib_fragments.bean

import androidx.fragment.app.Fragment

/**
 * @author huangzehui
 * @date 2025/1/16 00:23 周四
 * @description Fragment 的回退栈（自己定义，主要用来处理 startWithPop的问题）
 *
 * @param fm 当前任务栈是挂钩哪个 fragment 的
 * @param id BackStackEntry 的 id
 *
 * 思路：
 * 使用List集合
 *
 * 添加到任务栈的时候，就可以创建当前任务栈对象，然后绑定 fragment,
 * 然后到了fragment的时候，将任务栈的 id 绑定上，
 * 在 fragment destroy 的时候，解绑fragment
 *
 * 在返回监听，处理任务栈的弹出，通过任务栈的 id 匹配到任务栈，同时 fm 为null，说明是空栈，可以直接弹出
 * 匹配不到系统任务栈的任务栈，可以直接从集合移出
 *
 */
data class FmBackStackEntry(
    var fm:Fragment?,
    var id:Int,
)